package tpgrandt.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import tpgrandt.varios.EquipoPrimera;
import tpgrandt.varios.Jugador;

/**
 * @version 1.0
 * @created 19-Jan-2010 18:39:27
 */
public class JugadorDAO {

	public JugadorDAO(){

	}


	/**
	 * 
	 * @param puesto
	 * @param club
	 * @param cotizacion_max
	 * @param cotizacion_min
	 */
	public static Jugador[] listarJugadores(int puesto, int club, int cotizacion_min, int cotizacion_max){
	    Jugador lista[] = null;

	    try {
		Statement st = DAO.getStatement();
		String query = "SELECT * FROM equipo_primera";
		ResultSet eq = st.executeQuery(query);
		EquipoPrimera equipos[] = new EquipoPrimera[20];
		while (eq.next())
		    equipos[eq.getInt("id_equipo")] = new EquipoPrimera(eq.getInt("id_equipo"), eq.getString("nombre"));

		query = "SELECT * FROM jugador WHERE";
		if (puesto != Jugador.TODOS)
		    query += " puesto = " + (puesto - 1) + " AND";
		if (club >= 0)
		    query += " id_equipo = " + club + " AND";
		query += " cotizacion BETWEEN " + cotizacion_max + " AND " + 
                        cotizacion_min + " ORDER BY apellido, nombre, id_equipo;";
		ResultSet jug = st.executeQuery(query);
		Vector<Jugador> jugadores = new Vector<Jugador>();
		while (jug.next())
		    jugadores.add(new Jugador(jug.getInt("id_jugador"),
			    jug.getString("apellido"), jug.getString("nombre"),
			    equipos[jug.getInt("id_equipo")], jug.getInt("puesto") + 1,
			    0, jug.getInt("cotizacion")));
		
		lista = new Jugador[jugadores.size()];
		for (int i = 0; i < lista.length; i++)
		    lista[i] = jugadores.elementAt(i);
	    } catch (SQLException ex) {
		Logger.getLogger(JugadorDAO.class.getName()).log(Level.SEVERE, null, ex);
	    }

	    return lista;
	}

	/**
	 * 
	 * @param idJugador
	 */
	public static Jugador buscarJugador(int idJugador){
		return null;
	}

}